<?php

namespace app\models;

use yii\db\ActiveRecord;

/**
 * 卡状态变更纪律
 * Class CardStatusChange
 * @package app\models
 *
 * @property integer $id 
 * @property integer $card_id 卡编号
 * @property integer $status_old 原卡状态
 * @property integer $status_new 变更后卡状态
 * @property integer $change_time 变更时间
 * @property integer $source 变更来源：0-boss，1-系统管理员，2-代理商，3-用户
 * @property string $data 变更相关内容
 * @property Card $card 关联卡
 */
                          
class CardStatusChange extends ActiveRecord
{
    /**
     * 关联卡
     * @return \yii\db\ActiveQuery
     */
    public function getCard()
    {
        return $this->hasOne(Card::class, ['id' => 'card_id']);
    }
    
     /**
     * 记录状态变更信息
     * @param integer $card_id 卡编号
     * @param integer $status_old 原卡状态
     * @param integer $status_new 变更后卡状态
     * @param integer $source 变更来源：0-boss，1-系统管理员，2-代理商，3-用户，4-自动化任务
     * @param string $data 变更相关内容
     * @return boolean 是否保存成功
     */
    public static function info($card_id, $status_old, $status_new, $source, $data)
    {
        if (is_array($data)) {
            $data = json_encode($data);
        }
        $model = new CardStatusChange();
        $model->card_id = $card_id;
        $model->status_old = $status_old;
        $model->status_new = $status_new;
        $model->change_time = time();
        $model->source = $source;
        $model->data = $data;
        return $model->save();
    }
}
